package opf5.entities.partidos;

import java.util.List;

import opf5.entities.dominio.Equipo;
import opf5.entities.dominio.Inscripcion;
import opf5.entities.dominio.Jugador;
import opf5.entities.dominio.Partido;
import opf5.utilidades.Fecha;

public abstract class PartidoDecorator implements Partido {
	protected Partido partido;
	
	public PartidoDecorator(Partido partido) {
		this.partido = partido;
	}
	
	@Override
	public int cantidadJugadoresInscriptos() {
		return partido.cantidadJugadoresInscriptos();
	}

	@Override
	public void inscribir(Inscripcion nuevaInscripcion) {
		partido.inscribir(nuevaInscripcion);
	}

	@Override
	public boolean estaInscripto(Jugador unJugador) {
		return partido.estaInscripto(unJugador);
	}

	@Override
	public boolean hayLugar() {
		return partido.hayLugar();
	}

	@Override
	public List<Inscripcion> getInscripciones() {
		return partido.getInscripciones();
	}
	
	@Override
	public void darDeBajaSinReemplazo(Jugador unJugador) {
		partido.darDeBajaSinReemplazo(unJugador);
	}
	
	@Override
	public void darDeBajaConReemplazo(Jugador unJugador, Jugador otroJugador) {
		partido.darDeBajaConReemplazo(unJugador, otroJugador);
	}
	

	@Override
	public void confirmarEquipos(Equipo equipo1, Equipo equipo2) {
		this.partido.confirmarEquipos(equipo1, equipo2);
	}

	@Override
	public List<Equipo> getEquipos() {
		return this.partido.getEquipos();
	}

	@Override
	public void setResultado(int golesEquipo1, int golesEquipo2) {
		this.partido.setResultado(golesEquipo1, golesEquipo2);
	}

	@Override
	public int[] getResultados() {
		return this.partido.getResultados();
	}
	
	@Override
	public Fecha getFechaPartido() {
		return this.partido.getFechaPartido();
	}
	
	@Override
	public String getLugar() {
		return this.partido.getLugar();
	}
	
	@Override
	public void setFechaPartido(Fecha fecha) {
		this.partido.setFechaPartido(fecha);
	}

	@Override
	public void setLugarPartido(String lugar) {
		this.partido.setLugarPartido(lugar);
	}

	@Override
	public EstadoPartido getEstado() {
		return this.partido.getEstado();
	}

	@Override
	public boolean estaTerminado() {
		return this.partido.estaTerminado();
	}
	
	@Override
	public void setEstado(EstadoPartido estado) {
		this.partido.setEstado(estado);
	}

	@Override
	public void setInscripciones(List<Inscripcion> inscripciones) {
		this.partido.setInscripciones(inscripciones);
	}

	@Override
	public void setEquipo(int numero, Equipo equipo) {
		this.partido.setEquipo(numero, equipo);
	}
}
